/**
 *
 * Copyright © 2010 杭州邦盛金融信息技术有限公司 版权所有
 *
 */

package com.alvin.core;

import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;

/**
 * TODO 添加类的描述. <br/>
 * 时间:2015年9月9日 上午9:34:21 <br/>
 * @author   alvin
 * @version
 */
public class GregorianCalendarTest {
	public static void main(String[] args) {
		GregorianCalendar d = new GregorianCalendar();
		
		int today = d.get(Calendar.DAY_OF_MONTH);
		int month = d.get(Calendar.MONTH);
		
		d.set(Calendar.DAY_OF_MONTH, 1);
		int weekday = d.get(Calendar.DAY_OF_WEEK);      //3
		
		int firstDayOfWeek = d.getFirstDayOfWeek();  //1
		
		int indent = 0;
		while (weekday != firstDayOfWeek) {
			indent ++;
			d.add(Calendar.DAY_OF_MONTH, -1);
			weekday = d.get(Calendar.DAY_OF_WEEK);
		}
		
		String[] weekdayNames = new DateFormatSymbols().getShortWeekdays();
		do {
			System.out.printf("%4s", weekdayNames[weekday]);
			d.add(Calendar.DAY_OF_MONTH, 1);
			weekday = d.get(Calendar.DAY_OF_WEEK);
		} while (weekday != firstDayOfWeek);
		System.out.println();
		for (int i = 1; i <= indent; i++) {
			System.out.print("    ");
		}
		d.set(Calendar.DAY_OF_MONTH, 1);
		do {
			int day = d.get(Calendar.DAY_OF_MONTH);
			System.out.printf("%3d", day);
			
			if(day == today) 
				System.out.print("*");
			else {
				System.out.print(" ");
			};
			
			d.add(Calendar.DAY_OF_MONTH, 1);
			weekday = d.get(Calendar.DAY_OF_WEEK);
			if(weekday == firstDayOfWeek) {
				System.out.println();
			}
		} while (d.get(Calendar.MONTH) == month);
	}
}

